<?php
#
#
# Copyright TEDECO, 2009. http://tedeco.fi.upm.es
#
# This file is part of kumenya.
#
# Kumenya is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Kumenya is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Foobar.  If not, see <http://www.gnu.org/licenses/>.
#
#
#
?>
<?php
class BankAccount
{	
	const SCOPE = Accountancy;

	static public function getFields ($table = false) {
		$dbManager = new DBManager();
		$fields = $dbManager->MultipleTablesFields("ShowBankAccountFields", self::SCOPE, BankAccountsTable, $table);
		return $fields;
	}

	static public function Register ($filledFields) {
		$dbManager = new DBManager();
		$result = $dbManager->ExecuteProcedure ('NewBankAccount',self::SCOPE,$filledFields);		
		if ($result)
			Interfaz::Result($dbManager->GetResult());
		else
			Interfaz::Error($dbManager->GetError());
		return $result;		
	}

	static public function SearchCriterias () {
		$dbManager = new DBManager();
		$criterias = $dbManager->SearchCriterias ('SearchOrganizationsBankAccount',self::SCOPE);
		if (empty($criterias)) {
			Interfaz::Error($dbManager->GetError());
		}
		return $criterias;
	}	

	static public function Search ($criterias = array()) {
		$table = array();
		$dbManager = new DBManager();
		
		$organizationsTable = $dbManager->ExecuteSearchProcedure ('SearchOrganizationsBankAccount',self::SCOPE, $criterias);
		if (!is_array($organizationsTable))
			Interfaz::Error($dbManager->GetError());
		else			
			$table[Organization] = $organizationsTable;
		
		$peopleTable = $dbManager->ExecuteSearchProcedure ('SearchPeopleBankAccount',self::SCOPE, $criterias);
		if (!is_array($organizationsTable))
			Interfaz::Error($dbManager->GetError());
		else			
			$table[Person] = $peopleTable;
			
		return $table;
	}

	static public function SeeDetails ($accountType,$identifier) {
		$dbManager = new DBManager();

		switch ($accountType) {
			// BANK ACCOUNTS ASSOCIATED TO ORGANIZATIONS
			case Organization:
					$table = $dbManager->ExecuteSearchProcedure ('OrganizationsBankAccountDetails',self::SCOPE, $identifier);
					break;
	
			// BANK ACCOUNTS ASSOCIATED TO PEOPLE
			case Person:
					$table = $dbManager->ExecuteSearchProcedure ('PeopleBankAccountDetails',self::SCOPE, $identifier);
					break;
		}

		if (!is_array($table) || empty($table)) {
			Interfaz::Error($dbManager->GetError());
			return FALSE;
		}
		return $table[0];
	}

	static public function Remove ($filledFields) {
		$dbManager = new DBManager();
		$result = $dbManager->ExecuteProcedure ('RemoveBankAccount',self::SCOPE,$filledFields);		
		if ($result)
			Interfaz::Result($dbManager->GetResult());
		else
			Interfaz::Error($dbManager->GetError());
		return $result;	
	}

	static public function Modify ($filledFields) {
		$dbManager = new DBManager();
		$result = $dbManager->ExecuteProcedure ('EditBankAccount',self::SCOPE,$filledFields);		
		if ($result)
			Interfaz::Result($dbManager->GetResult());
		else
			Interfaz::Error($dbManager->GetError());
		return $result;		
	}

}
?>